Descrizione più dettagliata del block layer in due articoli:
https://lwn.net/Articles/736534/
https://lwn.net/Articles/738449/

Diagramma Storage Stack
https://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram#Diagram_for_Linux_Kernel_4.10

blk e blk-mq:
http://kernel.dk/blk-mq.pdf

I/O scheduling:
https://en.wikipedia.org/wiki/I/O_scheduling

In Linux è arrivato BFQ:
https://www.miamammausalinux.org/2017/04/nuovo-io-scheduler-per-il-kernel-bfq/

Demo BFQ:
https://youtu.be/ANfqNiJVoVE

Homepage BFQ:
http://algogroup.unimore.it/people/paolo/disk_sched/

Documentazione aggiornata su BFQ (solo) in:
Documentation/block/bfq-iosched.txt

Approfondimento algoritmi in BFQ (un po' datato, ma l'essenza del motore è quella):
http://algo.ing.unimo.it/people/paolo/disk_sched/mst-2015.pdf

I/O control con BFQ:
https://lwn.net/Articles/763603/
